package com.lichuang.fruitvarietysm.cart.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.lichuang.fruitvarietysm.cart.entity.Shoppingcart;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author kangkang
 * @since 2019-06-10
 */
@Repository
public interface ShoppingcartMapper extends BaseMapper<Shoppingcart> {

    /**
     * 根据用户id和商品id查，购物车表是否存在该商品，
     * 不存在就调addCart（）方法，进行添加。
     * 存在即调updateCatNum（）方法进行商品增加数量
     * @param userId
     * @param goodsId
     * @return
     */
    int sCartYesOrNoGoods(@Param("userId") int userId,
                          @Param("goodsId") int goodsId);

    /**
     * 根据用户id和商品id查，购物车中某商品的数量，及价格。sql语句查的是该条件的所有信息
     * @param userId
     * @param goodsId
     * @return
     */
    Shoppingcart sCartGoodsNumber(@Param("userId") int userId,
                         @Param("goodsId") int goodsId);

    /**
     * 查找该商品是否是秒杀的商品
     * @param goodsId
     * @return
     */
    int sGoodsMiaoSha(@Param("goodsId") int goodsId);

    /**
     * 添加商品到购物车
     * @param userId
     * @param goodsId
     * @return
     */
    int addCart(@Param("userId") int userId,
                @Param("goodsId") int goodsId,
                @Param("createTime")String createTime,
                @Param("totalPrice")BigDecimal totalPrice,
                @Param("skuId") Integer skuId);


    /**
     * 修改购物车商品的数量
     * @param cartID
     * @return
     */
    int updateCatNum(@Param("cartID") int cartID,@Param("quantity")int quantity);

    /**
     * 删除购物车中的某商品
     * @param cartID
     * @return
     */
    int deleteCatGoods(@Param("cartID") int cartID);


    /**
     * 根据实体类对象查找所有记录
     * @param userId
     * @return
     */
    List<Shoppingcart> getList(Integer userId);
}
